from waveapi import events
from waveapi import robot
from waveapi import ops
from waveapi import appengine_robot_runner

import random

def OnRobotAdded(event, wavelet):
  """Invoked when the robot has been added."""
  root_blip = wavelet.root_blip
  greeting = "Hello. I am the Oracle Bot.  I'm here to answer your questions."
  root_blip.reply().append(greeting)

def OnBlipSubmitted(event, wavelet):
  """Invoked when a blip is sent to the wavelet.
  If it ends in a question mark, we reply with one of three responses."""
  blip = event.blip
  contents = blip.text
  
  #Check to see if the last letter is a question mark.
  length = len(contents)
  if length > 0:
    if contents.endswith('?'):
  	  Notify(blip)
  
def Notify(blip):
  """Send an answer based on random selection."""
  choices = ['Yes','No','The future is uncertain','Absolutely',
            'Definitely Not','There is a good possibility','Likely Not']
  answer = random.choice(choices)
  blip.reply().append(answer)

if __name__ == '__main__':
  oracleBot = robot.Robot('Oracle Bot', 
      image_url='http://oracle-bot.appspot.com/images/icon.png',
      profile_url='http://oracle-bot.appspot.com/')
  oracleBot.register_handler(events.WaveletSelfAdded, OnRobotAdded)
  oracleBot.register_handler(events.BlipSubmitted, OnBlipSubmitted)
  appengine_robot_runner.run(oracleBot)